package com.dragon.modules.yuegou.entity.system;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.OwnerType;
import com.dragon.modules.yuegou.enums.system.UserGender;
import com.dragon.modules.yuegou.enums.system.UserStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

/**
 * 系统用户表--- 这块包含登录大运营平台、集团版本、悦商惠版本等除C端会员的所有用户集合实体类<br>
 * 对应的表为：sys_user<br>
 * 
 * @author pbuilder generated
 * @date 2019-08-15 09:41:37
 * @company sgy
 * @version 2.0
 */
@TableName("sys_user")
@ApiModel(description = "系统用户表--- 这块包含登录大运营平台、集团版本、悦商惠版本等除C端会员的所有用户集合")
public class UserEntity {

	protected String id;

    /** 登录名 */
	@ApiModelProperty("登录名")
	protected String username;

    /** 昵称 */
	@ApiModelProperty("昵称")
	protected String nickName;

    /** 手机号 */
	@ApiModelProperty("手机号")
	protected String mobile;

    /**  */
	protected String email;

    /** 身份证 */
	@ApiModelProperty("身份证")
	protected String idCard;

    /**  */
	protected String password;

    /** 盐，用于密码签名 */
	@ApiModelProperty("盐，用于密码签名")
	protected String salt;

    /** [枚举]性别：1-男-MALE、2-女-FEMALE、3-未知-UNKNOWN */
	@ApiModelProperty("[枚举]性别：1-男-MALE、2-女-FEMALE、3-未知-UNKNOWN")
	protected UserGender gender;

    /** [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED */
	@ApiModelProperty("[枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED")
	protected UserStatus status;

    /** 最后登陆时间 */
	@ApiModelProperty("最后登陆时间")
	protected LocalDateTime lastLoginTime;

    /** 密码错误次数,输入密码正确修改为0 输入密码错误增加一次 输入正确改为0 */
	@ApiModelProperty("密码错误次数,输入密码正确修改为0 输入密码错误增加一次 输入正确改为0")
	protected Boolean pwdWrongNumber;

    /** [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT', */
	@ApiModelProperty("[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT',")
	protected OwnerType ownerType;

    /**  */
	protected LocalDateTime createdTime;

    /**  */
	protected String createdBy;

    /**  */
	protected LocalDateTime modifiedTime;

    /**  */
	protected String modifiedBy;

    /** 逻辑删除，1表示已删除,0表示未删除 */
	@ApiModelProperty("逻辑删除，1表示已删除,0表示未删除")
	protected Boolean del;

    /**  */
	protected String delBy;

    /**  */
	protected LocalDateTime delTime;

	/**
	 * 构造一个空系统用户表--- 这块包含登录大运营平台、集团版本、悦商惠版本等除C端会员的所有用户集合实体对象
	 */
	public UserEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个系统用户表--- 这块包含登录大运营平台、集团版本、悦商惠版本等除C端会员的所有用户集合实体对象
	 * 
	 * @param other 其它对象
	 */
	public UserEntity(UserEntity other){
		super();
     	this.id = other.id;
     	this.username = other.username;
     	this.nickName = other.nickName;
     	this.mobile = other.mobile;
     	this.email = other.email;
     	this.idCard = other.idCard;
     	this.password = other.password;
     	this.salt = other.salt;
     	this.gender = other.gender;
     	this.status = other.status;
     	this.lastLoginTime = other.lastLoginTime;
     	this.pwdWrongNumber = other.pwdWrongNumber;
     	this.ownerType = other.ownerType;
     	this.createdTime = other.createdTime;
     	this.createdBy = other.createdBy;
     	this.modifiedTime = other.modifiedTime;
     	this.modifiedBy = other.modifiedBy;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
	}


	/**
	 * 获取
	 * 
	 * @return id 
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置
	 * 
	 * @param id 
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取登录名
	 * 
	 * @return username 登录名
	 */
	public String getUsername() {
		return username;
	}
  	
	/**
	 * 设置登录名
	 * 
	 * @param username 登录名
	 */
	public void setUsername(String username) {
		this.username = username;
	}

	/**
	 * 获取昵称
	 * 
	 * @return nickName 昵称
	 */
	public String getNickName() {
		return nickName;
	}
  	
	/**
	 * 设置昵称
	 * 
	 * @param nickName 昵称
	 */
	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	/**
	 * 获取手机号
	 * 
	 * @return mobile 手机号
	 */
	public String getMobile() {
		return mobile;
	}
  	
	/**
	 * 设置手机号
	 * 
	 * @param mobile 手机号
	 */
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	/**
	 * 获取
	 * 
	 * @return email 
	 */
	public String getEmail() {
		return email;
	}
  	
	/**
	 * 设置
	 * 
	 * @param email 
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * 获取身份证
	 * 
	 * @return idCard 身份证
	 */
	public String getIdCard() {
		return idCard;
	}
  	
	/**
	 * 设置身份证
	 * 
	 * @param idCard 身份证
	 */
	public void setIdCard(String idCard) {
		this.idCard = idCard;
	}

	/**
	 * 获取
	 * 
	 * @return password 
	 */
	public String getPassword() {
		return password;
	}
  	
	/**
	 * 设置
	 * 
	 * @param password 
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * 获取盐，用于密码签名
	 * 
	 * @return salt 盐，用于密码签名
	 */
	public String getSalt() {
		return salt;
	}
  	
	/**
	 * 设置盐，用于密码签名
	 * 
	 * @param salt 盐，用于密码签名
	 */
	public void setSalt(String salt) {
		this.salt = salt;
	}

	/**
	 * 获取[枚举]性别：1-男-MALE、2-女-FEMALE、3-未知-UNKNOWN
	 * 
	 * @return gender [枚举]性别：1-男-MALE、2-女-FEMALE、3-未知-UNKNOWN
	 */
	public UserGender getGender() {
		return gender;
	}
  	
	/**
	 * 设置[枚举]性别：1-男-MALE、2-女-FEMALE、3-未知-UNKNOWN
	 * 
	 * @param gender [枚举]性别：1-男-MALE、2-女-FEMALE、3-未知-UNKNOWN
	 */
	public void setGender(UserGender gender) {
		this.gender = gender;
	}

	/**
	 * 获取[枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 * 
	 * @return status [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 */
	public UserStatus getStatus() {
		return status;
	}
  	
	/**
	 * 设置[枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 * 
	 * @param status [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 */
	public void setStatus(UserStatus status) {
		this.status = status;
	}

	/**
	 * 获取最后登陆时间
	 * 
	 * @return lastLoginTime 最后登陆时间
	 */
	public LocalDateTime getLastLoginTime() {
		return lastLoginTime;
	}
  	
	/**
	 * 设置最后登陆时间
	 * 
	 * @param lastLoginTime 最后登陆时间
	 */
	public void setLastLoginTime(LocalDateTime lastLoginTime) {
		this.lastLoginTime = lastLoginTime;
	}

	/**
	 * 获取密码错误次数,输入密码正确修改为0 输入密码错误增加一次 输入正确改为0
	 * 
	 * @return pwdWrongNumber 密码错误次数,输入密码正确修改为0 输入密码错误增加一次 输入正确改为0
	 */
	public Boolean getPwdWrongNumber() {
		return pwdWrongNumber;
	}
  	
	/**
	 * 设置密码错误次数,输入密码正确修改为0 输入密码错误增加一次 输入正确改为0
	 * 
	 * @param pwdWrongNumber 密码错误次数,输入密码正确修改为0 输入密码错误增加一次 输入正确改为0
	 */
	public void setPwdWrongNumber(Boolean pwdWrongNumber) {
		this.pwdWrongNumber = pwdWrongNumber;
	}

	/**
	 * 获取[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT',
	 * 
	 * @return ownerType [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT',
	 */
	public OwnerType getOwnerType() {
		return ownerType;
	}
  	
	/**
	 * 设置[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT',
	 * 
	 * @param ownerType [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT',
	 */
	public void setOwnerType(OwnerType ownerType) {
		this.ownerType = ownerType;
	}

	/**
	 * 获取
	 * 
	 * @return createdTime 
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdTime 
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取
	 * 
	 * @return createdBy 
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdBy 
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedTime 
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedTime 
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedBy 
	 */
	public String getModifiedBy() {
		return modifiedBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedBy 
	 */
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

	/**
	 * 获取逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @return del 逻辑删除，1表示已删除,0表示未删除
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del 逻辑删除，1表示已删除,0表示未删除
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取
	 * 
	 * @return delBy 
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param delBy 
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取
	 * 
	 * @return delTime 
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param delTime 
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

    public String toString() {
		return new StringBuilder().append("UserEntity{").
			append("id=").append(id).
			append(",username=").append(username).
			append(",nickName=").append(nickName).
			append(",mobile=").append(mobile).
			append(",email=").append(email).
			append(",idCard=").append(idCard).
			append(",password=").append(password).
			append(",salt=").append(salt).
			append(",gender=").append(gender).
			append(",status=").append(status).
			append(",lastLoginTime=").append(lastLoginTime).
			append(",pwdWrongNumber=").append(pwdWrongNumber).
			append(",ownerType=").append(ownerType).
			append(",createdTime=").append(createdTime).
			append(",createdBy=").append(createdBy).
			append(",modifiedTime=").append(modifiedTime).
			append(",modifiedBy=").append(modifiedBy).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public UserEntity copy() {
		return new UserEntity(this);
	}

    /**  */
	public static final String COL_ID = "id";

    /** 登录名 */
	public static final String COL_USERNAME = "username";

    /** 昵称 */
	public static final String COL_NICK_NAME = "nick_name";

    /** 手机号 */
	public static final String COL_MOBILE = "mobile";

    /**  */
	public static final String COL_EMAIL = "email";

    /** 身份证 */
	public static final String COL_ID_CARD = "id_card";

    /**  */
	public static final String COL_PASSWORD = "password";

    /** 盐，用于密码签名 */
	public static final String COL_SALT = "salt";

    /** [枚举]性别：1-男-MALE、2-女-FEMALE、3-未知-UNKNOWN */
	public static final String COL_GENDER = "gender";

    /** [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED */
	public static final String COL_STATUS = "status";

    /** 最后登陆时间 */
	public static final String COL_LAST_LOGIN_TIME = "last_login_time";

    /** 密码错误次数,输入密码正确修改为0 输入密码错误增加一次 输入正确改为0 */
	public static final String COL_PWD_WRONG_NUMBER = "pwd_wrong_number";

    /** [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT', */
	public static final String COL_OWNER_TYPE = "owner_type";

    /**  */
	public static final String COL_CREATED_TIME = "created_time";

    /**  */
	public static final String COL_CREATED_BY = "created_by";

    /**  */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /**  */
	public static final String COL_MODIFIED_BY = "modified_by";

    /** 逻辑删除，1表示已删除,0表示未删除 */
	public static final String COL_DEL = "del";

    /**  */
	public static final String COL_DEL_BY = "del_by";

    /**  */
	public static final String COL_DEL_TIME = "del_time";
}
